home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Games Collection 1 / software vault.zip / software vault / CDR10 / MAPEDIT.ZIP / SAMPGAME / MAP.C < prev    next >
C/C++ Source or Header  |  1992-04-11  |  4KB  |  165 lines

  1. #include "cyber.h"
  2.  
  3. #define DUDEY 9*8
  4. #define DUDEX 11*8
  5. int mx=21,my=33;
  6. int cell=1;
  7. char spritename[22];
  8.  
  9. up()
  10. {
  11.     show_sprite(241,145,"uparrowin");
  12.     wprintf("Up");
  13.     do
  14.     {
  15.         my--;
  16.         make_map();
  17.         sprintf(spritename,"up%d",getcell());
  18.         putcell(spritename);
  19.         show_map();
  20.     }    while(mousebuttons()==2);
  21.     waitup();
  22.     show_sprite(241,145,"uparrowout");
  23.  
  24. }
  25.  
  26. left()
  27. {
  28.     show_sprite(225,161,"leftarrowin");
  29.     wprintf("Left");
  30.     do
  31.     {
  32.         mx--;
  33.         make_map();
  34.         sprintf(spritename,"left%d",getcell());
  35.         putcell(spritename);
  36.         show_map();
  37.     }    while(mousebuttons()==2);
  38.     waitup();
  39.     show_sprite(225,161,"leftarrowout");
  40. }
  41.  
  42. right()
  43. {
  44.     show_sprite(257,161,"rightarrowin");
  45.     wprintf("Right");
  46.     do
  47.     {
  48.         mx++;
  49.         make_map();
  50.         sprintf(spritename,"right%d",getcell());
  51.         putcell(spritename);
  52.         show_map();
  53.     }    while(mousebuttons()==2);
  54.     waitup();
  55.     show_sprite(257,161,"rightarrowout");
  56. }
  57.  
  58. down()
  59. {
  60.     show_sprite(241,177,"downarrowin");
  61.     wprintf("Down");
  62.     do
  63.     {
  64.         my++;
  65.         make_map();
  66.         sprintf(spritename,"down%d",getcell());
  67.         putcell(spritename);
  68.         show_map();
  69.     }     while(mousebuttons()==2);
  70.     waitup();
  71.     show_sprite(241,177,"downarrowout");
  72. }
  73.  
  74. putsprite(int xs, int ys, int xlen, int ylen, char *sprbuf)
  75. {
  76.     int loop;
  77.  
  78.     vwait();
  79.     for(loop=0;loop<ylen;loop++)
  80.     {
  81.         memcpy(scrptr+(ys+loop)*320+xs,sprbuf+loop*xlen,xlen);
  82.     }
  83. }
  84.  
  85. show_sprite(int xs, int ys,char *sprname)
  86. {
  87.     int loop;
  88.     for(loop=0;loop<db.num_sprites;loop++)
  89.     {
  90.         if(strcmpi(si[loop].name,sprname)==0)
  91.         {
  92.             mousecursor(0);
  93.             putsprite(xs,ys,si[loop].width,si[loop].height,si[loop].pict);
  94.             mousecursor(1);
  95.             return;
  96.         }
  97.     }
  98. }
  99.  
  100. putcell(char *sprname)
  101. {
  102.     int loop,xloop,loop2;
  103.     for(loop=0;loop<db.num_sprites;loop++)
  104.     {
  105.         if(strcmpi(si[loop].name,sprname)==0)
  106.         {
  107.             for(xloop=0;xloop<si[loop].height;xloop++)
  108.             {
  109.                 for(loop2=0;loop2<si[loop].width;loop2++)
  110.                     if(*(si[loop].pict+si[loop].width*xloop+loop2))
  111.                         *(bufptr+(DUDEY+xloop)*320+DUDEX+loop2)=*(si[loop].pict+(xloop*si[loop].width)+loop2);
  112.             }
  113.             return;
  114.         }
  115.     }
  116. }
  117.  
  118. make_map()
  119. {
  120.     register char xloop,yloop,loop;
  121.     register unsigned int outchar;
  122.  
  123.     for(xloop=0;xloop<21;xloop++)
  124.     {
  125.         for(yloop=0;yloop<16;yloop++)
  126.         {
  127.             outchar=mapptr[mx+xloop+(my+yloop)*320];
  128.             for(loop=0;loop<8;loop++)
  129.             {
  130.                 memcpy(bufptr+(yloop*8+8+loop)*320+xloop*8+8,csptr+(((outchar/40)*8)+loop)*320+((outchar%40)*8),8);
  131.             }
  132.         }
  133.     }
  134. }
  135.  
  136. show_map()
  137. {
  138.     register char loop;
  139.     for(loop=0;loop<16*8;loop++)
  140.         memcpy(scrptr+8+(8+loop)*320,bufptr+(8+loop)*320+8,21*8);
  141. }
  142.  
  143. int getcell()
  144. {
  145.     switch(cell)
  146.     {
  147.             case 1:
  148.                 cell=2;
  149.                 return(1);
  150.                 break;
  151.             case 2:
  152.                 cell=3;
  153.                 return(2);
  154.                 break;
  155.             case 3:
  156.                 cell=4;
  157.                 return(1);
  158.                 break;
  159.             case 4:
  160.                 cell=1;
  161.                 return(3);
  162.                 break;
  163.     }
  164. }
  165.